iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0

今天要介紹 TypeScript 的基本型別,TypeScript 跟 JavaScript 一樣擁有最基本的幾種型別 Number、String、Boolean、Object、Array。那在 TypeScript 要怎麼使用呢?這邊沿用 Day 1 的例子:

function add (n1: number, n2: number) {
  return n1 + n2
}

const number1 = "1"
const number2 = 1

const result = add(number1, number2)
console.log(result)

直接在要賦予型別的值後面加個冒號然後標記型別即可,string 以及 boolean 也是,這時如果像上面的程式碼一樣不小心把 number1 設成了字串時,編輯器就會提醒你:
https://ithelp.ithome.com.tw/upload/images/20210918/201319898BMxPLU5iQ.png

如果忽略編輯器的提醒執行編譯的話,終端機也會提醒你:
https://ithelp.ithome.com.tw/upload/images/20210918/20131989sIboIALwSQ.png

總之就是各種提醒 XD,這樣要出錯的機率就很小了!

其實也能夠用 JavaScript 來做驗證呀!比如說這樣:

function add(n1, n2) {
  if (typeof n1 === 'number' && typeof n2 === 'number') {
    return n1 + n2
  }
}

這樣的話的確也可以,不過偵錯的動作就會發生在 runtime 的時候,等於說必須得等編譯完之後才能看到是否有錯誤,而 TypeScript 是在編譯前就先偵測了。

Object 的寫法也差不多,除了定義物件本身之外,還需要個別定義好裡面每一個屬性的型別:

const person: {
  name: string;
  age: number
} = {
  name: 'Claire',
  age: 27
}

但這樣寫很醜 XD,也可以用 type 註解來先把會用到的物件的全部型別都先一起定義好,最後要在物件上標記型別時直接標記定義好的 type 即可:

type Person = {
  name: string;
  age: number
}

const person: Person = {
  name: 'Claire',
  age: 27
}

如果要定義多個相同結構的物件時這樣會比較乾淨一些,這樣的寫法跟 interface 其實有點像,之後會再介紹到 interface 是什麼東東。

而 Array 的寫法呢,則是這樣:

let hobbies: string[]

這樣就定義了一個規定裡面都是字串的陣列,意思就是該陣列裡面不能放數字,也不能放布林值,也不能放其他值,都不行!那如果今天真的很想放其他型別的值在陣列裡怎麼辦!!!那可以改個型別:

let hobbies: any[]

Any 型別可以讓你放任何你想放的值,不過它太彈性了,這樣其實就失去了使用 TypeScript 的原意了 QQ,所以這個型別請不要太常用,後面也會再介紹到 Any 型別。

以上是第四天的學習筆記~感謝閱讀。:)


上一篇
Day 3 設定 tsconfig.json 檔
下一篇
Day 5 基本型別 - part 2
系列文
TypeScript 三十天學習日記24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言